package com.baixun.gassystem.service;

import com.baixun.gasentity.entity.SysLawEnforcementDevice;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import javax.servlet.ServletOutputStream;
import java.util.List;

/**
 * 执法仪操作列表的服务接口
 * 提供分页查询和不分页查询功能，支持根据场站名称和报警类型进行筛选
 */
public interface SysLawEnforcementDeviceService {

    /**
     * 分页查询执法仪记录
     *
     * @param page        分页对象，包含分页信息（页码、每页大小）
     * @param stationName 场站名称，作为可选的筛选条件
     * @param alarmType   报警类型，作为可选的筛选条件
     * @return 分页结果，包含执法仪记录
     */
    IPage<SysLawEnforcementDevice> selectByStationAndTypeWithPagination(Page<SysLawEnforcementDevice> page,
                                                                        String stationName,
                                                                        String alarmType);

    /**
     * 不分页查询执法仪记录
     *
     * @param stationName 场站名称，作为可选的筛选条件
     * @param alarmType   报警类型，作为可选的筛选条件
     * @return 执法仪记录列表
     */
    List<SysLawEnforcementDevice> selectByStationAndType(String stationName, String alarmType);

    void exportLawEnforcementDeviceToExcel(String stationName, String alarmType, ServletOutputStream outputStream);
}
